<?php
/**
 * Загрузить реестр установленных модулей в память
 */
function setup_infomod_load($autocreate=false)
{
	$MT_mod_name = 'setup';
	if (!($mods_info_path = mst_modpath($MT_mod_name,'dat/modsinfo.dat',true)))
	{
		if ($autocreate)
		{
			// Создаем реестр модулей
			if (!setup_install_modsdb())
			{
				return false;
			}
		}else
		{
			error_log('Невозможно открыть файл',"Невозможно загрузить конфигурацию модулей ({$mod_info_path})");
			return false;
		}
	}
	$mod_info_text = file($mods_info_path);
	$mods_info = unserialize($mod_info_text['0']);
	mst_setdatemod($MT_mod_name,'mods_info',$mods_info);
	return true;
}
/**
 * Сохранить реестр установленных модулей в файл
 */
function setup_infomod_save()
{   // Сохранить информацию о пользователях
	$MT_mod_name = 'setup';
	$mod_info_path=mst_modpath($MT_mod_name,'dat/modsinfo.dat',FALSE,TRUE);
	// Проверяем возможность доступа к файлу
	if (!touch($mod_info_path))
	{
		error_log('Невозможно открыть файл',"Невозможно сохранить конфигурацию модулей ({$mod_info_path})");
		return false;
	}
	$fp = fopen($mod_info_path,'w');
	fwrite($fp,serialize(mst_getdatemod($MT_mod_name,'mods_info')));
	fclose($fp);
	return true;
}
/**
 * @desc Получить информацию о модуле
 * @param имя модуля
 * @return массив с информацией о модуле
 */
function setup_infomod_get($mod_name)
{
	$MT_mod_name = 'setup';
	$mods_info = mst_getdatemod($MT_mod_name,'mods_info');
	if (!is_array($mods_info))
	{
		// Возможно 
		setup_infomod_load();
		$mods_info = mst_getdatemod($MT_mod_name,'mods_info');
		if (!is_array($mods_info))
		{
			return false;
		}
	}
	return @$mods_info[$mod_name];
}
/**
 * @desc Изменить информацию о модуле
 * @param имя модуля
 * @param массив с информацией о модуле
 * @param bool сохранить информацию после завершения операции
 * @return bool
 */
function setup_infomod_set($mod_name,$mod_info,$write=false)
{

	$MT_mod_name = 'setup';
	$mods_info = &mst_getdatemod($MT_mod_name,'mods_info');
	$mods_info[$mod_name] = $mod_info;
	// mst_setdatemod($MT_mod_name,'mods_info',$mods_info);
	if ($write)
	{
		//
		// Сохраняем список установленных модулей
		setup_infomod_save();
	}
	return true;
}
/**
 * @desc Удалить информацию о модуле
 * @param имя модуля
 * @return bool
 */
function setup_infomod_unset($mod_name,$write=false)
{
	$MT_mod_name = 'setup';
	$mods_info = &mst_getdatemod($MT_mod_name,'mods_info');
	unset($mods_info[$mod_name]);
	// mst_setdatemod($MT_mod_name,'mods_info',$mods_info);
	if ($write)
	{
		//
		// Сохраняем список установленных модулей
		setup_infomod_save();
	}
	return true;
}

?>